The open nature of conventional computing environments allows easy observation and modification of executing code, enabling individuals to reverse engineer, tamper with, or hack software. To address this problem, various techniques of code obfuscation endeavor to transform programs into forms difficult to understand and modify. However, there is no current obfuscation algorithm that is substantially secure and practical. The conventional code obfuscation techniques achieve marginally increased security at the expense of ever increasing obfuscated code size. The significantly increased size of the obfuscated code results in a notable decrease in the speed of execution thereof.
With the growing popularity of software and media distribution and the increasing economic investments made therein, the importance of protection techniques is expected to grow. Therefore, there is a need for improved code obfuscation techniques.